#include <cstdio>
#include <vector>

using namespace std;

vector<int> son[100005];
bool f[100005];
int ans[100005];

// 计算 u 的直系后代
int dfs(int root) {
    int ret = 0;

    for(int i = 0; i < son[root].size(); i++) {
        ret += dfs(son[root][i]);
    }
    ans[root] = ret;
    return ret + 1;   // 下一个祖先的后代，而自己本身就是该祖先的直系后代
}

int main()
{
    int n, x, y, root;   // x 是 y 的父亲
    scanf("%d", &n);

    for(int i = 0; i < n - 1; i++) {
        scanf("%d%d", &x, &y);
        son[x].push_back(y);
        
        f[y] = true;   // 有前驱的不是根
    }

    // 寻找根
    for(int i = 1; i <= n; i++) {
        if(!f[i]) {
            root = i;
            break;
        }
    }

    dfs(root);
    for(int i = 1; i <= n; i++) {
        printf("%d\n", ans[i]);
    }

    return 0;
}

